home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / ifl / iflTileIter.z / iflTileIter
Text File  |  1998-10-20  |  9KB  |  199 lines

  1.  
  2.  
  3.  
  4. iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))    IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll     iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr - tile iterator
  10.  
  11. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  12.      iflTile3D
  13.  
  14. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  15.      #include <il/iflTileIter.h>
  16.  
  17. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.      This class is primarily used to iterate through the pages covering a
  19.      tile. It assumes that pages are fixed size and that the origin of the
  20.      first page is aligned with (0,0).  The alignment assumption can be
  21.      overridden by setting the _t_i_l_e_A_l_i_g_n_e_d flag, either in the constructor or
  22.      in the sssseeeettttTTTTiiiilllleeee() method. Pages are assumed to be abutted unless the page
  23.      border attribute is set using sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(); in this case, the page
  24.      origins will be altered so that each page overlaps its neigbors by twice
  25.      the page border and the first page will have it's origin at (-_b_x,-_b_y,-
  26.      _b_z).
  27.  
  28.      The iflTileIter class contains eight public member variables, six of
  29.      which are derived from iflTile3D, that together specify the current page:
  30.  
  31.  
  32.           iiiinnnntttt (_x,_y,_z,_c)               The origin of the current page.
  33.  
  34.           iiiinnnntttt (_n_x,_n_y,_n_z,_n_c)           The size of the current page.  (These
  35.                                       values are constant.)
  36.  
  37.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrrssss
  38.  
  39.           iflTileIter(const iflTile3Dint& parent, const iflSize& pageSize,
  40.                       int cSize, const iflConfig* cfg=NULL, int tileAligned=0)
  41.           iflTileIter(const iflTile3Dint& parent, int cSize,
  42.                       const iflConfig* cfg=NULL, int tileAligned=FALSE)
  43.           iflTileIter()                        _p_r_o_t_e_c_t_e_d
  44.  
  45.      IIIItttteeeerrrraaaattttiiiioooonnnn
  46.  
  47.           int more()
  48.           int getCount()
  49.  
  50.      IIIInnnniiiittttiiiiaaaalllliiiizzzzaaaattttiiiioooonnnn
  51.  
  52.           void setPageSize(const iflSize& pageSize)
  53.           void setTile(const iflTile3Dint& parent, int cSize,
  54.                        const iflConfig* cfg=NULL, int tileAligned=0)
  55.           void setPageBorder(const iflXYZint& border, int includeBorder=FALSE)
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))    IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll     iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))
  71.  
  72.  
  73.  
  74. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  75.      iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr(((())))
  76.  
  77.           iflTileIter(const iflTile3Dint& parent, const iflSize& pageSize,
  78.                       int cSize, const iflConfig* cfg=NULL, int tileAligned=0)
  79.           iflTileIter(const iflTile3Dint& parent, int cSize,
  80.                       const iflConfig* cfg=NULL, int tileAligned=FALSE)
  81.           iflTileIter()                            _p_r_o_t_e_c_t_e_d
  82.  
  83.  
  84.           The first constructor takes a _p_a_r_e_n_t tile and a page size
  85.           (_p_a_g_e_S_i_z_e). This will make a tile with same size as the page that
  86.           can be stepped across the parent tile in a row by row fashion. The
  87.           constructed tile will have its origin aligned to a multiple of its
  88.           size (unless _t_i_l_e_A_l_i_g_n_e_d is TRUE, in which case this tile will have
  89.           is origin aligned to the parent's origin). The constructor also
  90.           takes the number of channels int the parent tile, _c_S_i_z_e, and a
  91.           channel list/channel offset (in _c_f_g), to control stepping in the
  92.           channel dimension.
  93.  
  94.           The second version of the constructor defers setting the page size
  95.           to a later call to sssseeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee().
  96.  
  97.           The protected constructor is used by derived classes, which are
  98.           responsible initializing the object.
  99.  
  100.      ggggeeeettttCCCCoooouuuunnnntttt(((())))
  101.  
  102.           int getCount()
  103.  
  104.  
  105.           This method returns the total number of pages that will be iterated
  106.           through for the current parameter values.
  107.  
  108.      mmmmoooorrrreeee(((())))
  109.  
  110.           int more()
  111.  
  112.  
  113.           This method is used to iterate through the page locations that cover
  114.           the parent tile. It must be called prior to accessing the first page
  115.           location. It will return FALSE when there are no more page locations
  116.           to iterate through, TRUE otherwise. After each call to mmmmoooorrrreeee() the
  117.           public member variables, (_x,_y,_z,_c), will indicate to origin of the
  118.           next page.
  119.  
  120.      sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((())))
  121.  
  122.           void setPageBorder(const iflXYZint& border, int includeBorder=FALSE)
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))    IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll     iiiiffffllllTTTTiiiilllleeeeIIIItttteeeerrrr((((3333))))
  137.  
  138.  
  139.  
  140.           This method is used to apply a page border, (_b_o_r_d_e_r) to this tile;
  141.           this will cause the iterated locations to overlap by twice the page
  142.           border in each dimension; reflecting the way pages with borders are
  143.           stored in an image cache.  If _i_n_c_l_u_d_e_B_o_r_d_e_r is TRUE then pages that
  144.           only supply border data will be included (useful when iterating for
  145.           write access to a cache).
  146.  
  147.      sssseeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((())))
  148.  
  149.           void setPageSize(const iflSize& pageSize)
  150.  
  151.  
  152.           This method sets the size of this tile (i.e. the page size that will
  153.           be iterated).
  154.  
  155.      sssseeeettttTTTTiiiilllleeee(((())))
  156.  
  157.           void setTile(const iflTile3Dint& parent, int cSize,
  158.                        const iflConfig* cfg=NULL, int tileAligned=0)
  159.  
  160.  
  161.           This method resets the dimensions of the parent tile that will be
  162.           iterated across.  The parameters have the same meanings as on the
  163.           constructor.
  164.  
  165. IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS
  166.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiiffffllllTTTTiiiilllleeee3333DDDD
  167.      boundingBox(), contains(), grow(), init(), intersect(), operator!=(),
  168.      operator+=(), operator-=(), operator==(), shrink()
  169.  
  170. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  171.      iflTile3D, ilTileIter
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.